﻿using System;
using System.Collections.Generic;
using System.Text;

namespace mozhi.smarterp.Business.Purchases.Receipt
{
    public class PurchaseReceiptCreateDto
    {
        /// <summary>
        /// 是否退货
        /// </summary>
        public bool IsCreditNote { get; set; }

        public Guid DepartmentId { get; set; }

        /// <summary>
        /// 仓管员
        /// </summary>
        public Guid WarehouseClerkId { get; set; }

        public Guid SupplierId { get; set; }

        /// <summary>
        /// 采购部门
        /// </summary>
        public Guid PurchaseDepartmentId { get; set; }

        /// <summary>
        /// 采购员
        /// </summary>
        public Guid PurchaserId { get; set; }


        public Guid? PaymentTemrId { get; set; }

        public DateTime Date { get; set; }

        public Guid CurrencyId { get; set; }

        public decimal ExchangeRate {  get; set; }

        public bool IncludeTax {  get; set; }

        public string Comment {  get; set; }

        public List<PurchaseReceiptItemCreateDto> Items { get; set; }
    }

    public class PurchaseReceiptItemCreateDto
    {
        public Guid ProductId { get; set; }

        public Guid WarehouseId { get; set; }

        public Guid? LocationId { get; set; }

        public Guid PurchaseUnitId { get; set; }

        public decimal PurchaseQuantity { get; set; }

        public decimal ReceiptQuantity { get; set; }

        public decimal Price { get; set; }

        public string BatchNumber { get; set; }

        public string SerialNumber { get; set; }

        /// <summary>
        /// 生产日期
        /// </summary>
        public DateTime? ProductionDate { get; set; }

        /// <summary>
        /// 保质期（天）
        /// </summary>
        public decimal? ShelfLifeDays { get; set; }

        /// <summary>
        /// 过期日期
        /// </summary>
        public DateTime? ExpirationDate { get; set; }

        public Guid? TaxRateId { get; set; }

        public decimal? DiscountRate { get; set; }

        public bool IsGift { get; set; }

        public string Remark { get; set; }
    }
}
